O IBGE divulga bases cartográficas do país em diferentes níveis. Chamados de shapefiles, estes arquivos serão utilizados para produção de mapas no R.
shapefileggplot2shapefile_df %>% ggplot() +
geom_polygon(aes(x = long, y = lat, group = group),
colour = "black", fill = 'white', size = .2) +
coord_map()Produza o mapa do Estado de Pernambuco sem Fernando de Noronha (CD_GEOCMU == 2605459).
O Atlas do Desenvolvimento Humano no Brasil traz o Índice de Desenvolvimento Humano Municipal (IDHM) e outros 200 indicadores de demografia, educação, renda, trabalho, habitação e vulnerabilidade para os municípios brasileiros.
Produza um mapa de calor que apresente visualmente o IDHM dos municípios do Estado de Pernambuco (26) no ano de 2010 sem considerar Fernando de Noronha (2605459).
Produza uma mapa mundi no qual os países estejam prenchidos com a cor "#2D3E50" e suas fronteiras com "#FEBF57".
ggmap e o Google MapsRecentemente o Google Maps passou a exigir de todos os desenvolvedores uma API específica para uso gratuito do serviço.
Para cadastrar um projeto e fazer obter uma API, utilize este link.
Para informações sobre esta mudança, veja:
ggplot2 e o Google Mapsggplot2 e o Google Mapsggplot2 e o Google Mapsggplot2 e o Google Mapsggplot2 e o Google Mapsggplot2 e o Google Mapsggplot2 e o Google MapsO gráfico representa, de maneira concisa, clara e elegante, 6 informações diferentes: número de soldados, distância, temperatura, localização precisa de rios e cidades, direção de ataque e de recuo, e localização relativa às datas.
Mas será que conseguimos reproduzi-lo no R? (código original e dados)
troops %>% ggplot() +
geom_path(aes(x = long, y = lat, group = group, color = direction, size = survivors))troops %>% ggplot() +
geom_path(aes(x = long, y = lat, group = group, color = direction, size = survivors),
lineend = "round") + # linhas arredondadas para melhor efeito
scale_size(range = c(0.5, 15)) # desagrega o número de categorias na escalatroops %>% ggplot() +
geom_path(aes(x = long, y = lat, group = group, color = direction, size = survivors),
lineend = "round") + # linhas arredondadas para melhor efeito
scale_size(range = c(0.5, 15)) + # desagrega o número de categorias na escala
scale_colour_manual(values = c("#e6ccac", "#252523")) + # cores originais
labs(x = NULL, y = NULL) + # tira os rótulos dos eixos
guides(color = FALSE, size = FALSE) # tira os tiques dos eixos# Agora estamos chamando os dados dentro de cada geom. Por quê?
ggplot() +
geom_path(data = troops, aes(x = long, y = lat, group = group, color = direction, size = survivors), lineend = "round") +
geom_point(data = cities, aes(x = long, y = lat), color = "#DC5B44") + # loc. das cidades
geom_text_repel(data = cities, aes(x = long, y = lat, label = city), # nomes das cidades
color = "red", size = 3, fontface = "bold") +
scale_size(range = c(0.5, 15)) +
scale_colour_manual(values = c("#e6ccac", "#252523")) +
labs(x = NULL, y = NULL) +
guides(color = FALSE, size = FALSE) +
theme_void() # tira todos os elementos do gráficoUma das qualidades do gráfico do Minard é a precisão geográfica. Isso quer dizer que podemos colocar o nosso código em um mapa da Europa, e saber exatamente o caminho das tropas. Essa é uma boa oportunidade de apresentar a vocês o pacote ggmap
library(ggmap)
recorte_europa <- c(left = -13.10, bottom = 35.75, right = 41.04, top = 61.86)
europa <- get_stamenmap(bbox = recorte_europa, zoom = 5, maptype = "toner-lite", where = "cache")
europa %>% ggmap() +
geom_path(data = troops, aes(x = long, y = lat, group = group, color = direction, size = survivors),
lineend = "round") +
scale_size(range = c(0.5, 5)) +
scale_colour_manual(values = c("#e6ccac", "#252523")) +
guides(color = FALSE, size = FALSE) + theme_nothing()# Juntar dados de ambos os gráficos
ambos <- gtable_rbind(ggplotGrob(mapa), ggplotGrob(grafico_temperaturas))
# Ajustando paineis
paineis <- ambos$layout$t[grep("panel", ambos$layout$name)]
map.panel.height <- ambos$heights[paineis][1]
# ambos$heights[paineis] <- unit(c(map.panel.height, 0.1), "null")
ambos$heights[paineis] <- unit(c(unlist(map.panel.height)[1], 0.1), "null")
# Exibindo ambos os gráficos juntos
grid::grid.newpage()
grid::grid.draw(ambos)As instruções da tarefa estão no arquivo NN-class-ds4ir-assignment.rmd da pasta assignment que se encontra na raiz desse projeto.